﻿#define _CRT_SECURE_NO_WARNINGS
/*游戏要求：
1. 电脑自动生成1~100的随机数
2. 玩家猜数字，猜数字的过程中，根据猜测数据的大小给出大了或小了的反馈，直到猜对，游戏结束
增加难度：
​	增加上猜数次数，次数用尽，挑战失败*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void game()
{
	srand((unsigned)time(NULL));
	int r = rand() % 100 + 1;
	//printf("%d\n", r);
	int guess = 0;
	//因为不知道猜的次数，要不停循环加判断
	int count = 5;//设置次数限制

	while (1)
	{
		printf("请输入猜的数字: ");
		scanf("%d", &guess);//接收输入的数字
		if (guess == r)
		{
			printf("猜对了，数字是%d\n", guess);
			break;
		}
		else if (guess > r)
		{
			printf("猜大了\n");
			count--;
		}
		else
		{
			printf("猜小了\n");
			count--;
		}
		if (count == 0)
		{
			printf("次数用尽，挑战失败，随机数是%d\n", r);
			break;
		}
	}
}

void menu()
{
	printf("**************\n");
	printf("*** 1.paly ***\n");
	printf("*** 0.exit ***\n");
	printf("**************\n");
	printf("请输入选择：> ");
}

int main()
{
	//打印游戏菜单
	int input = 0;
	do
	{
		//printf("**************\n");
		//printf("*** 1.paly ***\n");
		//printf("*** 0.exit ***\n");
		//printf("**************\n");
		//printf("请输入选择：> ");//打印菜单可独立出去
		menu();

		//int input = 0;变量应定义在do while循环外部
		scanf("%d", &input);
		switch (input)//用switch比if判断更简明
		{
		case 1:
			//printf("开始游戏\n");
			game();//这一部分可独立出去
			break;
		case 0:
			//printf("退出\n");
			break;
		default:
			printf("输入错误，请重新输入\n");
			break;
		}
	} while (input);
	//与菜单搭配起来，用变量input当判断条件，当input=0时会退出循环，非0时会一直执行

}